package com.zpz.framework.zpzoauth.service;

import com.zpz.framework.zpzoauth.common.result.ZpzOauthResultMsg;
import com.zpz.framework.zpzoauth.pojo.qo.AddFrameMenuQo;
import com.zpz.framework.zpzoauth.pojo.qo.DeleteFrameMenuQo;
import com.zpz.framework.zpzoauth.pojo.qo.MenuInfoQo;
import com.zpz.framework.zpzoauth.pojo.qo.ModifyFrameMenuQo;
import com.zpz.framework.zpzoauth.pojo.vo.GetMenuVo;
import com.zpz.framework.zpzoauth.pojo.vo.GetRoleMenuByUserCodeVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
 * @author zhangpanzhi
 * @time 2019-07-09
 * @description 未经本人允许请勿随便改动，尊重劳动
 * */
public interface ZpzOauthFrameMenuService {

    /**
     * 获取菜单树结构信息
     *
     * @param
     * @return
     */
    ZpzOauthResultMsg<List<GetMenuVo>> getMenuList(HttpServletRequest request, String clientId) throws Exception;

    /**
     * 获取获取当前用户权限菜单
     *
     * @param
     * @return
     */
    ZpzOauthResultMsg<List<GetRoleMenuByUserCodeVo>> getCurUserRoleMenu(HttpServletRequest request, MenuInfoQo menuInfoQo) throws Exception;

    /**
     * 添加菜单
     * @param request
     * @param addFrameMenuQo
     * @return
     */
    ZpzOauthResultMsg<Boolean> addframemenuinfo(HttpServletRequest request, AddFrameMenuQo addFrameMenuQo);

    /**
     * 修改菜单
     * @param request
     * @param modifyFrameMenuQo
     * @return
     */
    ZpzOauthResultMsg<Boolean> updateframemenuinfo(HttpServletRequest request, ModifyFrameMenuQo modifyFrameMenuQo);

    /**
     * 删除菜单
     * @param request
     * @param deleteFrameMenuQo
     * @return
     */
    ZpzOauthResultMsg<Boolean> delframemenuinfo(HttpServletRequest request, DeleteFrameMenuQo deleteFrameMenuQo);

}
